Tableauの関数を全て試してみる〜文字列関数編その1〜 #tableau
はじめに
こんにちは。DI部のtamaです。
当エントリはTableau Functions Advent Calendar 2017の5日目のエントリです。 昨日のエントリはTableauの関数を全て試してみる〜数値関数編その4〜でした。
今回は新章突入、文字列関数について見ていきます。
- 使用するTableauのバージョンは一貫して10.4.1です。
- 各関数の説明で引用しているのは、Tableauの公式リファレンスからの引用です。
- TableauHelp 関数
目次
検証環境
作業環境
- MacOS High Sierra 10.13.1
- Tableau 10.4.1
使用データ
- (原則)Tableau付属のサンプルスーパーストア
- (場合によって)関数グラフ描画用データ
- -1〜1の範囲で、0.01毎に値が並んでいるデータ
- 上記の値をディメンション「X軸」とし、その上に色々な関数をプロットする。
- 参考:Tableau 関数グラフの描画 | Developers.IO
ASCII(string)
概要
string の最初の文字の ASCII コードを返します。
- 文字列のASCIIコードを調べることができます。
使ってみた
オーダーIDに対して関数を実行します。
ASCII([オーダー Id])
全部「J」から始まるのに、値が違いますね。 これはメジャー(数値)として返ってきているので、集計されてしまっているからです。
レコード単位でみると、JのASCIIコードである74が返ってきています。
どういう時に使う?
- 分析する上で、文字列の最初のASCIIコードを知りたい時は、なかなかないように思えます…
参考文献
CHAR(number)
概要
ASCII コード number によって符号化された文字を返します。
- ASCII関数の逆ですね。
使ってみた
上記で出てきた74をもとに戻してみましょう。
CHAR(74)
「J」が返ってきました。
どういう時に使う?
- 分析するデータ(接続しているデータ)が、ASCIIコードだった場合は当関数で変換し、分析を進めることができます。
- あまりそういったデータを分析する機会は少ないかもしれませんが…
参考文献
CONTAINS(string, substring)
概要
特定の文字列に指定されたサブ文字列が含まれている場合は、true を返します。
- 1番目の引数に指定した文字列に対して、特定の文字列が含まれているか調べる関数です。
使ってみた
オーダーIDに対して、「101」という文字列がないか調べてみます。
CONTAINS([オーダー Id], '101')
真偽値で判定結果が返ります。
どういう時に使う?
- GA等のデータ(ディレクトリパスなど)に対して使用すると有効と思われます。
- 他の関数と組み合わせることで、色々な事ができる関数だと思います。
- IF文やCASE文など…
参考文献
ENDSWITH(string, substring)
概要
特定の文字列が指定されたサブ文字列で終わる場合は、true を返します。行末の空白は無視されます。 * 引数に指定した文字列に対して、後方一致で検索することができる関数になります。
使ってみた
末尾が「1」のオーダーIDを出してみたいと思います。
ENDSWITH([オーダー Id],'1')
真偽値で判定結果が返ります。
どういう時に使う?
- 一定のルールに基づいたデータ(通し番号系、ID系等)に対しての処理
- 「末尾が○○のIDは、☓☓というカテゴリ」というルールを施しているデータは、たまに見かけます。
参考文献
FINDNTH(string, substring, occurrence)
概要
指定した文字列内のサブストリングが n 番目に現れる位置を返します。ここで、n は出現引数によって定義されます。すべてのデータ ソースで使用できません。
*
使ってみた
「100」という文字列が、1番目に出てくる位置を調べます。
FINDNTH([オーダー Id], '100', 1)
数値で返ってきているので、集計されてしまっています。
「100」が現れる先頭位置が返ってきています。
どういう時に使う?
- 一定のルールに基づいたデータ(通し番号系、ID系等)に対しての処理
LEFT(string, number)
概要
文字列内の一番左から n 文字分を返します (n は引数で指定された数)。
- 左から指定した分の文字列を抜き出します。
使ってみた
オーダーIDの左2文字分を抽出します。
LEFT([オーダー Id],2)
「JP」という文字だけ抜き出せました。
どういう時に使う?
- 一定のルールに基づいたデータ(通し番号系、ID系等)に対しての処理
- 「何桁目までが○○のIDは、☓☓というカテゴリ」というルールを施しているデータは結構ありがちです。
- 上記の例でいくと、オーダーIDの先頭2文字で国を表していた場合、LEFT関数で抜き出して、その項目をフィルターとして使えば、国毎にオーダーIDを絞ることができます。
参考文献
LEN(string)
概要
文字列の長さを返します。
- 概要そのままです。
使ってみた
オーダーIDの長さを調べてみます。
LEN([オーダー Id])
例のごとく集計されているので…
レコード単位で確認します。
どういう時に使う?
- 一定のルールに基づいたデータ(通し番号系、ID系等)に対しての処理
- 文字列の文字数に応じて、そのデータの種類を決めているデータも、多少見かけますね。
参考文献
おわりに
今回は文字列関数をみてきました。数値関数よりかは身近というか、結構普段の分析に使用できそうな関数が見受けられたと思います。 次回はtamaによる「文字列関数編その2」です。お楽しみに。